/**
 * 工具对象
 */
const utils = {
  /**
   * 轻提示输出
   * @param {*} title 输出的内容
   */
  toast(title = '获取数据失败') {
    wx.showToast({
      title,
      icon: 'none',
      duration: 1500,
      mask: true,
    })
  },
  /**
   * 校验手机号
   * @param {*} mobile
   */
  verifyMobile(mobile) {
    // 1.1 写正则
    const reg = /^1[3-9]\d{9}$/
    // 1.2 校验手机号
    const result = reg.test(mobile.trim())
    // 1.3 提示用户
    if (!result) {
      wx.utils.toast('请输入正确的手机号码')
    }
    // 1.4 返回校验的结果
    return result
  },

  /**
   * 校验手机验证码
   * @param {*} code
   */
  verifyCode(code) {
    // 1.1 写正则
    const reg = /^\d{6}$/
    // 1.2 校验验证码
    const result = reg.test(code.trim())
    // 1.3 提示用户
    if (!result) {
      wx.utils.toast('请输入正确的验证码')
    }
    // 1.4 返回校验的结果
    return result
  },
  /**
   * 校验业主姓名
   */
  verifyName(name) {
    // 验证业主姓名（必须为汉字）
    const reg = /^[\u4e00-\u9fa5]{2,5}$/
    // 验证业主姓名
    const valid = reg.test(name.trim())
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写真实中文姓名!')
    // 返回验证结果
    return valid
  },
  /**
   * 校验身份证正反面
   */
  verifyPicture(idcardFrontUrl, idcardBackUrl) {
    // 图片地址不能为空
    const valid = !!idcardBackUrl && !!idcardFrontUrl
    // 验证结果提示
    if (!valid) wx.utils.toast('请上传身份证照片!')
    // 返回验证结果
    return valid
  },
  /**
   * 校验报修房屋
   * @param {*} houseId 房屋的id
   */
  verifyHouse(houseId) {
    const valid = houseId !== ''
    if (!valid) wx.utils.toast('请选择需要报修的房屋!')
    return valid
  },
  /**
   * 校验维修项目
   * @param {*} repairItemId
   */
  verifyRepair(repairItemId) {
    const valid = repairItemId !== ''
    // 验证结果提示
    if (!valid) wx.utils.toast('请选择维修项目!')
    // 返回验证结果
    return valid
  },
  /**
   * 校验预约日期
   * @param {*} date
   */
  verifyDate(date) {
    // 2024/02/02
    const reg = /^\d{4}\/\d{2}\/\d{2}$/
    const valid = reg.test(date.trim())
    if (!valid) wx.utils.toast('请选择预约日期!')
    return valid
  },
  /**
   * 校验问题描述
   * @param {*} description
   */
  verifyDescription(description) {
    // 验证报修项目描述
    const valid = description.trim() !== ''
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写问题描述!')
    // 返回验证结果
    return valid
  },
  /**
   * 根据时间戳转成日期
   * @param {*} timeStamp  时间戳
   */
  formatDate(timeStamp) {
    const date = new Date(timeStamp)
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    return [year, month, day].map(this.formatNumber).join('/')
  },
  formatNumber(n) {
    const s = n.toString()
    return s[1] ? s : '0' + s
  },
}

/**
 * 把工具对象挂载到全局对象(wx), 注意: 挂载的属性不能和内置的重名
 */
wx.utils = utils

/**
 * 默认导出
 */
export default utils
